standardize arg proccessing loop structure and naming. (#429)
authortsteven4 <13596209+tsteven4@users.noreply.github.com>
Mon, 2 Dec 2019 19:34:09 +0000 (12:34 -0700)
committerGitHub <noreply@github.com>
Mon, 2 Dec 2019 19:34:09 +0000 (12:34 -0700)
* standardize arg processing loops in vec handling.

* standardize var naming in arg processing loops.

defs.h
filter_vecs.cc
vecs.cc

diff --git a/defs.h b/defs.h
index 75200c4b0fd656d1882cbf872f98aefbab2bbfd5..de803ab932f394af0d30d5d599071d0040b539c6 100644 (file)
--- a/defs.h
+++ b/defs.h
@@ -1068,8 +1068,8 @@ void warning(const char*, ...) PRINTFLIKE(1, 2);
 void debug_print(int level, const char* fmt, ...) PRINTFLIKE(2,3);
 
 ff_vecs_t* find_vec(const QString&);
-void assign_option(const QString& vecname, arglist_t* ap, const char* val);
-void disp_vec_options(const QString& vecname, const arglist_t* ap);
+void assign_option(const QString& vecname, arglist_t* arg, const char* val);
+void disp_vec_options(const QString& vecname, const arglist_t* args);
 void disp_vecs();
 void disp_vec(const QString& vecname);
 void validate_options(const QStringList& options, const arglist_t* args, const QString& name);
index 700094a4b2c87e134d680b7bf11e84a071153104..7e19a0db0b110ec7095e816e7b6830f40bd57890 100644 (file)
@@ -202,15 +202,15 @@ find_filter_vec(const QString& vecname)
 
     /* step 1: initialize by inifile or default values */
     if (args) {
-      for (auto ap = args; ap->argstring; ap++) {
-        QString qtemp = inifile_readstr(global_opts.inifile, vec.name, ap->argstring);
+      for (auto arg = args; arg->argstring; arg++) {
+        QString qtemp = inifile_readstr(global_opts.inifile, vec.name, arg->argstring);
         if (qtemp.isNull()) {
-          qtemp = inifile_readstr(global_opts.inifile, "Common filter settings", ap->argstring);
+          qtemp = inifile_readstr(global_opts.inifile, "Common filter settings", arg->argstring);
         }
         if (qtemp.isNull()) {
-          assign_option(vec.name, ap, ap->defaultvalue);
+          assign_option(vec.name, arg, arg->defaultvalue);
         } else {
-          assign_option(vec.name, ap, CSTR(qtemp));
+          assign_option(vec.name, arg, CSTR(qtemp));
         }
       }
     }
@@ -218,10 +218,10 @@ find_filter_vec(const QString& vecname)
     /* step 2: override settings with command-line values */
     if (!options.isEmpty()) {
       if (args) {
-        for (auto ap = args; ap->argstring; ap++) {
-          const QString opt = get_option(options, ap->argstring);
+        for (auto arg = args; arg->argstring; arg++) {
+          const QString opt = get_option(options, arg->argstring);
           if (!opt.isNull()) {
-            assign_option(vec.name, ap, CSTR(opt));
+            assign_option(vec.name, arg, CSTR(opt));
           }
         }
       }
@@ -243,10 +243,10 @@ free_filter_vec(Filter* filter)
   arglist_t* args = filter->get_args();
 
   if (args) {
-    for (auto ap = args; ap->argstring; ap++) {
-      if (ap->argvalptr) {
-        xfree(ap->argvalptr);
-        ap->argvalptr = *ap->argval = nullptr;
+    for (auto arg = args; arg->argstring; arg++) {
+      if (arg->argvalptr) {
+        xfree(arg->argvalptr);
+        arg->argvalptr = *arg->argval = nullptr;
       }
     }
   }
@@ -258,8 +258,8 @@ init_filter_vecs()
   for (const auto& vec : filter_vec_list) {
     arglist_t* args = vec.vec->get_args();
     if (args) {
-      for (auto ap = args; ap->argstring; ap++) {
-        ap->argvalptr = nullptr;
+      for (auto arg = args; arg->argstring; arg++) {
+        arg->argvalptr = nullptr;
       }
     }
   }
@@ -284,11 +284,13 @@ disp_filter_vecs()
     printf("   %-20.20s  %-50.50s\n",
            qPrintable(vec.name), qPrintable(vec.desc));
     arglist_t* args = vec.vec->get_args();
-    for (auto ap = args; ap && ap->argstring; ap++) {
-      if (!(ap->argtype & ARGTYPE_HIDDEN))
-        printf("         %-18.18s    %-.50s %s\n",
-               ap->argstring, ap->helpstring,
-               (ap->argtype&ARGTYPE_REQUIRED)?"(required)":"");
+    if (args) {
+      for (auto arg = args; arg->argstring; arg++) {
+        if (!(arg->argtype & ARGTYPE_HIDDEN))
+          printf("       %-18.18s    %-.50s %s\n",
+                 arg->argstring, arg->helpstring,
+                 (arg->argtype & ARGTYPE_REQUIRED) ? "(required)" : "");
+      }
     }
   }
 }
@@ -303,11 +305,13 @@ disp_filter_vec(const QString& vecname)
     printf("   %-20.20s  %-50.50s\n",
            qPrintable(vec.name), qPrintable(vec.desc));
     arglist_t* args = vec.vec->get_args();
-    for (auto ap = args; ap && ap->argstring; ap++) {
-      if (!(ap->argtype & ARGTYPE_HIDDEN))
-        printf("         %-18.18s    %-.50s %s\n",
-               ap->argstring, ap->helpstring,
-               (ap->argtype&ARGTYPE_REQUIRED)?"(required)":"");
+    if (args) {
+      for (auto arg = args; arg->argstring; arg++) {
+        if (!(arg->argtype & ARGTYPE_HIDDEN))
+          printf("       %-18.18s    %-.50s %s\n",
+                 arg->argstring, arg->helpstring,
+                 (arg->argtype & ARGTYPE_REQUIRED) ? "(required)" : "");
+      }
     }
   }
 }
@@ -327,18 +331,20 @@ disp_v1(const fl_vecs_t& vec)
   disp_help_url(vec, nullptr);
   printf("\n");
   arglist_t* args = vec.vec->get_args();
-  for (auto ap = args; ap && ap->argstring; ap++) {
-    if (!(ap->argtype & ARGTYPE_HIDDEN)) {
-      printf("option\t%s\t%s\t%s\t%s\t%s\t%s\t%s",
-             CSTR(vec.name),
-             ap->argstring,
-             ap->helpstring,
-             name_option(ap->argtype),
-             ap->defaultvalue? ap->defaultvalue : "",
-             ap->minvalue? ap->minvalue : "",
-             ap->maxvalue? ap->maxvalue : "");
-      disp_help_url(vec, ap);
-      printf("\n");
+  if (args) {
+    for (auto arg = args; arg->argstring; arg++) {
+      if (!(arg->argtype & ARGTYPE_HIDDEN)) {
+        printf("option\t%s\t%s\t%s\t%s\t%s\t%s\t%s",
+               CSTR(vec.name),
+               arg->argstring,
+               arg->helpstring,
+               name_option(arg->argtype),
+               arg->defaultvalue ? arg->defaultvalue : "",
+               arg->minvalue ? arg->minvalue : "",
+               arg->maxvalue ? arg->maxvalue : "");
+        disp_help_url(vec, arg);
+        printf("\n");
+      }
     }
   }
 }
diff --git a/vecs.cc b/vecs.cc
index ec4b9b4c3abde15a79ed0e9a3440bdc40d7c3821..fec9c6a9535b1b0f7c467a521970947c9c3e6154 100644 (file)
--- a/vecs.cc
+++ b/vecs.cc
@@ -1106,10 +1106,10 @@ init_vecs()
 {
   for (const auto& vec : vec_list) {
     if (vec.vec->args) {
-      for (auto ap = vec.vec->args; ap->argstring; ap++) {
-        ap->argvalptr = nullptr;
-        if (ap->argval) {
-          *ap->argval = nullptr;
+      for (auto arg = vec.vec->args; arg->argstring; arg++) {
+        arg->argvalptr = nullptr;
+        if (arg->argval) {
+          *arg->argval = nullptr;
         }
       }
     }
@@ -1130,10 +1130,10 @@ exit_vecs()
       (*vec.vec->exit)();
     }
     if (vec.vec->args) {
-      for (auto ap = vec.vec->args; ap->argstring; ap++) {
-        if (ap->argvalptr) {
-          xfree(ap->argvalptr);
-          *ap->argval = ap->argvalptr = nullptr;
+      for (auto arg = vec.vec->args; arg->argstring; arg++) {
+        if (arg->argvalptr) {
+          xfree(arg->argvalptr);
+          *arg->argval = arg->argvalptr = nullptr;
         }
       }
     }
@@ -1141,20 +1141,20 @@ exit_vecs()
 }
 
 void
-assign_option(const QString& module, arglist_t* ap, const char* val)
+assign_option(const QString& module, arglist_t* arg, const char* val)
 {
   const char* c;
 
-  if (ap->argval == nullptr) {
-    fatal("%s: No local variable defined for option \"%s\"!", qPrintable(module), ap->argstring);
+  if (arg->argval == nullptr) {
+    fatal("%s: No local variable defined for option \"%s\"!", qPrintable(module), arg->argstring);
   }
 
-  if (ap->argvalptr != nullptr) {
-    xfree(ap->argvalptr);
-    ap->argvalptr = nullptr;
+  if (arg->argvalptr != nullptr) {
+    xfree(arg->argvalptr);
+    arg->argvalptr = nullptr;
   }
-  if (ap->argval) {
-    *ap->argval = nullptr;
+  if (arg->argval) {
+    *arg->argval = nullptr;
   }
 
   if (val == nullptr) {
@@ -1164,20 +1164,20 @@ assign_option(const QString& module, arglist_t* ap, const char* val)
   // Fixme - this is probably somewhere between wrong and less than great.  If you have an option "foo"
   // and want to set it to the value "foo", this code will prevent that from happening, but we seem to have
   // code all over the place that relies on this. :-/
-  if (case_ignore_strcmp(val, ap->argstring) == 0) {
+  if (case_ignore_strcmp(val, arg->argstring) == 0) {
     c = "";
   } else {
     c = val;
   }
 
-  switch (ap->argtype & ARGTYPE_TYPEMASK) {
+  switch (arg->argtype & ARGTYPE_TYPEMASK) {
   case ARGTYPE_INT:
     if (*c == '\0') {
       c = "0";
     } else {
       int test;
       is_fatal(1 != sscanf(c, "%d", &test),
-               "%s: Invalid parameter value %s for option %s", qPrintable(module), val, ap->argstring);
+               "%s: Invalid parameter value %s for option %s", qPrintable(module), val, arg->argstring);
     }
     break;
   case ARGTYPE_FLOAT:
@@ -1186,7 +1186,7 @@ assign_option(const QString& module, arglist_t* ap, const char* val)
     } else {
       double test;
       is_fatal(1 != sscanf(c, "%lf", &test),
-               "%s: Invalid parameter value %s for option %s", qPrintable(module), val, ap->argstring);
+               "%s: Invalid parameter value %s for option %s", qPrintable(module), val, arg->argstring);
     }
     break;
   case ARGTYPE_BOOL:
@@ -1221,24 +1221,26 @@ assign_option(const QString& module, arglist_t* ap, const char* val)
 
   /* for bool options without default: don't set argval if "FALSE" */
 
-  if (((ap->argtype & ARGTYPE_TYPEMASK) == ARGTYPE_BOOL) &&
-      (*c == '0') && (ap->defaultvalue == nullptr)) {
+  if (((arg->argtype & ARGTYPE_TYPEMASK) == ARGTYPE_BOOL) &&
+      (*c == '0') && (arg->defaultvalue == nullptr)) {
     return;
   }
-  *ap->argval = ap->argvalptr = xstrdup(c);
+  *arg->argval = arg->argvalptr = xstrdup(c);
 }
 
 void
-disp_vec_options(const QString& vecname, const arglist_t* ap)
+disp_vec_options(const QString& vecname, const arglist_t* args)
 {
-  for (; ap && ap->argstring; ap++) {
-    if (*ap->argval && ap->argval) {
-      printf("options: module/option=value: %s/%s=\"%s\"",
-             qPrintable(vecname), ap->argstring, *ap->argval);
-      if (ap->defaultvalue && (case_ignore_strcmp(ap->defaultvalue, *ap->argval) == 0)) {
-        printf(" (=default)");
+  if (args) {
+    for (auto arg = args; arg->argstring; arg++) {
+      if (*arg->argval && arg->argval) {
+        printf("options: module/option=value: %s/%s=\"%s\"",
+               qPrintable(vecname), arg->argstring, *arg->argval);
+        if (arg->defaultvalue && (case_ignore_strcmp(arg->defaultvalue, *arg->argval) == 0)) {
+          printf(" (=default)");
+        }
+        printf("\n");
       }
-      printf("\n");
     }
   }
 }
@@ -1248,10 +1250,12 @@ void validate_options(const QStringList& options, const arglist_t* args, const Q
   for (const auto& option : options) {
     const QString option_name = option.left(option.indexOf('='));
     bool valid = false;
-    for (auto ap = args; ap && ap->argstring; ap++) {
-      if (option_name.compare(ap->argstring, Qt::CaseInsensitive) == 0) {
-        valid = true;
-        break;
+    if (args) {
+      for (auto arg = args; arg->argstring; arg++) {
+        if (option_name.compare(arg->argstring, Qt::CaseInsensitive) == 0) {
+          valid = true;
+          break;
+        }
       }
     }
     if (!valid) {
@@ -1277,22 +1281,22 @@ find_vec(const QString& vecname)
     validate_options(options, vec.vec->args, vec.name);
 
     if (vec.vec->args) {
-      for (auto ap = vec.vec->args; ap->argstring; ap++) {
+      for (auto arg = vec.vec->args; arg->argstring; arg++) {
         if (!options.isEmpty()) {
-          const QString opt = get_option(options, ap->argstring);
+          const QString opt = get_option(options, arg->argstring);
           if (!opt.isNull()) {
-            assign_option(vec.name, ap, CSTR(opt));
+            assign_option(vec.name, arg, CSTR(opt));
             continue;
           }
         }
-        QString qopt = inifile_readstr(global_opts.inifile, vec.name, ap->argstring);
+        QString qopt = inifile_readstr(global_opts.inifile, vec.name, arg->argstring);
         if (qopt.isNull()) {
-          qopt = inifile_readstr(global_opts.inifile, "Common format settings", ap->argstring);
+          qopt = inifile_readstr(global_opts.inifile, "Common format settings", arg->argstring);
         }
         if (qopt.isNull()) {
-          assign_option(vec.name, ap, ap->defaultvalue);
+          assign_option(vec.name, arg, arg->defaultvalue);
         } else {
-          assign_option(vec.name, ap, CSTR(qopt));
+          assign_option(vec.name, arg, CSTR(qopt));
         }
       }
     }
@@ -1321,22 +1325,22 @@ find_vec(const QString& vecname)
     validate_options(options, vec_list[0].vec->args, svec.name);
 
     if (vec_list[0].vec->args) {
-      for (auto ap = vec_list[0].vec->args; ap->argstring; ap++) {
+      for (auto arg = vec_list[0].vec->args; arg->argstring; arg++) {
         if (!options.isEmpty()) {
-          const QString opt = get_option(options, ap->argstring);
+          const QString opt = get_option(options, arg->argstring);
           if (!opt.isNull()) {
-            assign_option(svec.name, ap, CSTR(opt));
+            assign_option(svec.name, arg, CSTR(opt));
             continue;
           }
         }
-        QString qopt = inifile_readstr(global_opts.inifile, svec.name, ap->argstring);
+        QString qopt = inifile_readstr(global_opts.inifile, svec.name, arg->argstring);
         if (qopt.isNull()) {
-          qopt = inifile_readstr(global_opts.inifile, "Common format settings", ap->argstring);
+          qopt = inifile_readstr(global_opts.inifile, "Common format settings", arg->argstring);
         }
         if (qopt.isNull()) {
-          assign_option(svec.name, ap, ap->defaultvalue);
+          assign_option(svec.name, arg, arg->defaultvalue);
         } else {
-          assign_option(svec.name, ap, CSTR(qopt));
+          assign_option(svec.name, arg, CSTR(qopt));
         }
       }
     }
@@ -1471,14 +1475,16 @@ disp_vecs()
       continue;
     }
     printf(VEC_FMT, qPrintable(vec.name), qPrintable(vec.desc));
-    for (auto ap = vec.vec->args; ap && ap->argstring; ap++) {
-      if (!(ap->argtype & ARGTYPE_HIDDEN))
-        printf("         %-18.18s    %s%-.50s %s\n",
-               ap->argstring,
-               (ap->argtype & ARGTYPE_TYPEMASK) ==
-               ARGTYPE_BOOL ? "(0/1) " : "",
-               ap->helpstring,
-               (ap->argtype & ARGTYPE_REQUIRED)?"(required)":"");
+    if (vec.vec->args) {
+      for (auto arg = vec.vec->args; arg->argstring; arg++) {
+        if (!(arg->argtype & ARGTYPE_HIDDEN))
+          printf("       %-18.18s    %s%-.50s %s\n",
+                 arg->argstring,
+                 (arg->argtype & ARGTYPE_TYPEMASK) ==
+                 ARGTYPE_BOOL ? "(0/1) " : "",
+                 arg->helpstring,
+                 (arg->argtype & ARGTYPE_REQUIRED) ? "(required)" : "");
+      }
     }
   }
 }
@@ -1493,14 +1499,16 @@ disp_vec(const QString& vecname)
     }
 
     printf(VEC_FMT, qPrintable(vec.name), qPrintable(vec.desc));
-    for (auto ap = vec.vec->args; ap && ap->argstring; ap++) {
-      if (!(ap->argtype & ARGTYPE_HIDDEN))
-        printf("         %-18.18s    %s%-.50s %s\n",
-               ap->argstring,
-               (ap->argtype & ARGTYPE_TYPEMASK) ==
-               ARGTYPE_BOOL ? "(0/1) " : "",
-               ap->helpstring,
-               (ap->argtype & ARGTYPE_REQUIRED)?"(required)":"");
+    if (vec.vec->args) {
+      for (auto arg = vec.vec->args; arg->argstring; arg++) {
+        if (!(arg->argtype & ARGTYPE_HIDDEN))
+          printf("       %-18.18s    %s%-.50s %s\n",
+                 arg->argstring,
+                 (arg->argtype & ARGTYPE_TYPEMASK) ==
+                 ARGTYPE_BOOL ? "(0/1) " : "",
+                 arg->helpstring,
+                 (arg->argtype & ARGTYPE_REQUIRED) ? "(required)" : "");
+      }
     }
   }
 }
@@ -1575,19 +1583,21 @@ static void
 disp_v3(const vecs_t& vec)
 {
   disp_help_url(vec, nullptr);
-  for (auto ap = vec.vec->args; ap && ap->argstring; ap++) {
-    if (!(ap->argtype & ARGTYPE_HIDDEN)) {
-      printf("option\t%s\t%s\t%s\t%s\t%s\t%s\t%s",
-             CSTR(vec.name),
-             ap->argstring,
-             ap->helpstring,
-             name_option(ap->argtype),
-             ap->defaultvalue? ap->defaultvalue : "",
-             ap->minvalue? ap->minvalue : "",
-             ap->maxvalue? ap->maxvalue : "");
+  if (vec.vec->args) {
+    for (auto arg = vec.vec->args; arg->argstring; arg++) {
+      if (!(arg->argtype & ARGTYPE_HIDDEN)) {
+        printf("option\t%s\t%s\t%s\t%s\t%s\t%s\t%s",
+               CSTR(vec.name),
+               arg->argstring,
+               arg->helpstring,
+               name_option(arg->argtype),
+               arg->defaultvalue ? arg->defaultvalue : "",
+               arg->minvalue ? arg->minvalue : "",
+               arg->maxvalue ? arg->maxvalue : "");
+      }
+      disp_help_url(vec, arg);
+      printf("\n");
     }
-    disp_help_url(vec, ap);
-    printf("\n");
   }
 }
 
@@ -1639,21 +1649,21 @@ bool validate_args(const QString& name, const arglist_t* args)
   bool ok = true;
 
   if (args != nullptr) {
-    for (auto ap = args; ap->argstring; ap++) {
-      if (ap->argtype == ARGTYPE_INT) {
-        if (ap->defaultvalue &&
-            ! is_integer(ap->defaultvalue)) {
-          Warning() << name << "Int option" << ap->argstring << "default value" << ap->defaultvalue << "is not an integer.";
+    for (auto arg = args; arg->argstring; arg++) {
+      if (arg->argtype == ARGTYPE_INT) {
+        if (arg->defaultvalue &&
+            ! is_integer(arg->defaultvalue)) {
+          Warning() << name << "Int option" << arg->argstring << "default value" << arg->defaultvalue << "is not an integer.";
           ok = false;
         }
-        if (ap->minvalue &&
-            ! is_integer(ap->minvalue)) {
-          Warning() << name << "Int option" << ap->argstring << "minimum value" << ap->minvalue << "is not an integer.";
+        if (arg->minvalue &&
+            ! is_integer(arg->minvalue)) {
+          Warning() << name << "Int option" << arg->argstring << "minimum value" << arg->minvalue << "is not an integer.";
           ok = false;
         }
-        if (ap->maxvalue &&
-            ! is_integer(ap->maxvalue)) {
-          Warning() << name << "Int option" << ap->argstring << "maximum value" << ap->maxvalue << "is not an integer.";
+        if (arg->maxvalue &&
+            ! is_integer(arg->maxvalue)) {
+          Warning() << name << "Int option" << arg->argstring << "maximum value" << arg->maxvalue << "is not an integer.";
           ok = false;
         }
       }